在 Day 26 的精彩實戰中,我們成功地打通了 ATDD 的“最後一公里”,同時也完成了從「業務價值」到「程式碼實現」再回到「業務價值驗證」的循環。
我們已經在 TDD 和 ATDD 的視角下,與 AI 進行了合作,AI 幫助我們寫 Gherkin、寫測試、寫產品程式碼,似乎是一個無所不能、有求必應的完美夥伴。
但是,真實的開發場景遠比理想化的 Kata 複雜。當我們面對一個龐大的業務系統、一個有著嚴格程式碼規範的團隊時,我們很快就會遇到一個新問題:
AI 的建議,並不總是我們想要的,甚至有時是完全錯誤的。
今天的目標:從 AI 的熱情中抽離出來,深入探討人機協作中更高級的藝術 —— 衝突、思辨與決策。
當 AI 的建議與你的想法或團隊規範衝突時,該如何應對? 重新思考:在 AI 時代,人類開發者的核心價值究竟是什麼?
假設我們正在重構一個函式,我們向 AI 請求一個更優雅的版本,AI 也給出了一個可行的方案,所有測試也都通過了。但你作為一個經驗豐富的開發者,總覺得這個方案的「味道」不對。
可能的原因:
把 AI 當作一個「方案提供者」,而不是「最終答案」,它的建議是一個很好的起點,而不是必須遵循的聖旨。
詠唱範例:
這個方案可行,但是否可以避免使用 X 設計模式,嘗試用一個更簡單的`if/else`結構來重寫?我們的團隊更注重直接和清晰。
謝謝你的建議。在這個函式中,請將所有名為item的變數重命名為product,因為這更符合我們的 Domain Term。
最常見的情況是,AI 的方案有 80% 是可取的,勇敢地接受它的建議,然後親自動手修改那剩下的 20%,將你的經驗和判斷融入其中。
每個團隊都有自己的程式碼風格規範 (Coding Style Guide),舉幾個例子🌰🌰🌰:
if
語句的括號要不要換行?AI 在沒有被明確告知的情況下,會使用它所學習到的 「最大公約數」 風格,這很可能與團隊規範不符。
詠唱範例:
請參考我選取的GetUserProfile函式的程式碼風格(特別是錯誤處理和日誌記錄的方式),為我實現一個新的UpdateUserProfile函式。
將那些能夠生成符合團隊規範程式碼的、效果最好的 Prompt 記錄下來,形成團隊的共享知識庫,這樣新人加入時,就能快速學會如何與 AI 高效協作 (作者在下在工作這就是選擇這個 solution)。
當 AI 能夠完成越來越多的任務時,我們是否會被取代? 今天的探討似乎也透露出否定的答案。 AI 正在將我們從「體力勞動」中解放出來,讓我們更專注於那些無法被自動化的、更高層次的價值。
今天,我們探討了人機協作中至關重要的一環——思辨與決策。